home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Forever 4
/
Atari Forever 4.zip
/
Atari Forever 4.iso
/
SERIE_AI
/
AI_036
/
DIR2FIL
/
DIR2FILE.C
next >
Wrap
C/C++ Source or Header
|
1998-03-14
|
7KB
|
263 lines
/* Dir to File from Xite softvare
by Per-Erik "Pekka" Peterson Gothenburg Sweden */
#include <tos.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ext.h>
void read_data(FILE *fp, char dir[], int attr);
void put_info(void);
int main(int argc, char *argv[])
{
char var1[], filename[];
int tjo, kontr = 0, hej;
FILE *fp;
char pek1[] = "/H";
char pek2[] = "/h";
char pek3[] = "/S";
char pek4[] = "/s";
char pek5[] = "/V";
char pek6[] = "/v";
char pek7[] = "/D";
char pek8[] = "/d";
char pek9[] = "/A";
char pek10[] = "/a";
char pek11[] = "/R";
char pek12[] = "/r";
hej = argc;
if (argc == 1){
put_info();
}
if (argc == 2){
if ((fp=fopen("DIR2FILE.TXT", "w+"))==NULL){
fprintf(stderr,"Cant open DIR2FILE.TXT!\n");
exit(1);
}
read_data(fp, argv[1], 0);
}
if (argc >= 3){
if (argc == 3)
sprintf(var1, "%s", argv[2]);
if (argc == 4)
sprintf(var1, "%s", argv[3]);
tjo = strcmp(var1, pek1);
if (tjo == 0)
kontr = 1;
tjo = strcmp(var1, pek2);
if (tjo == 0)
kontr = 1;
tjo = strcmp(var1, pek3);
if (tjo == 0)
kontr = 2;
tjo = strcmp(var1, pek4);
if (tjo == 0)
kontr = 2;
tjo = strcmp(var1, pek5);
if (tjo == 0)
kontr = 3;
tjo = strcmp(var1, pek6);
if (tjo == 0)
kontr = 3;
tjo = strcmp(var1, pek7);
if (tjo == 0)
kontr = 4;
tjo = strcmp(var1, pek8);
if (tjo == 0)
kontr = 4;
tjo = strcmp(var1, pek9);
if (tjo == 0)
kontr = 5;
tjo = strcmp(var1, pek10);
if (tjo == 0)
kontr = 5;
tjo = strcmp(var1, pek11);
if (tjo == 0)
kontr = 6;
tjo = strcmp(var1, pek12);
if (tjo == 0)
kontr = 6;
}
if (hej == 3){
if(kontr == 1 || kontr == 2 || kontr == 3 ||
kontr == 4 || kontr == 5 || kontr == 6) {
if ((fp=fopen("DIR2FILE.TXT", "w+"))==NULL){
fprintf(stderr,"Cant open DIR2FILE.TXT!\n");
exit(1);
}
}
if (kontr == 0){
sprintf(filename, "%s", argv[2]);
if ((fp=fopen(filename, "w+"))==NULL){
fprintf(stderr,"Cant open %s!\n", filename);
exit(1);
}
}
read_data(fp, argv[1], kontr);
}
if (hej == 4){
if(kontr == 1 || kontr == 2 || kontr == 3 ||
kontr == 4 || kontr == 5 || kontr == 6) {
sprintf(filename, "%s", argv[2]);
if ((fp=fopen(var1, "w+"))==NULL){
fprintf(stderr,"Cant open %s!\n", filename);
exit(1);
}
read_data(fp, argv[1], kontr);
}
else{
put_info();
}
}
fclose(fp);
return(0);
}
void read_data(FILE *fp, char dir[], int attr)
{
DTA *pdta;
int ret, attribut = 0;
if(attr != 0){
if(attr == 1)
attribut = FA_HIDDEN;
if(attr == 2)
attribut = FA_SYSTEM;
if(attr == 3)
attribut = FA_VOLUME;
if(attr == 4)
attribut = FA_SUBDIR;
if(attr == 5)
attribut = FA_READONLY;
if(attr == 6)
attribut = FA_ARCHIVE;
}
printf("%cE", 27);
pdta = Fgetdta();
ret = Fsfirst(dir, attribut);
while(ret == 0) {
printf("%-15s %-13ld\n", pdta->d_fname, pdta->d_length);
fprintf(fp, "%-15s %-13ld\n", pdta->d_fname, pdta->d_length);
ret = Fsnext();
}
}
void put_info(void)
{
printf("%cE%cf", 27, 27);
printf(" freeware ========================================== freeware\n");
printf(" ** %cp DIRECTORY TO FILE 1.1 %cq **\n", 27, 27);
printf(" ** %cp from Xite Software %cq **\n", 27, 27);
printf(" ** %cp by Per-Erik \"Pekka\" Peterson %cq **\n", 27, 27);
printf(" ==========================================\n\n\n");
puts("USAGE: <Drive:\\path\\filename.ext> <Drive:\\path\\filename.ext> <option>\n");
puts("<Drive:\\path\\filename.ext> means from where and what you want to dir.\n");
puts("<next Drive:\\path\\filename.ext>");
puts(" means in what file you want to write your dir.");
puts(" Default is DIR2FILE.TXT.\n");
puts("<options> means type of files you want to include.");
puts(" Default is ordinary files.\n");
puts("Options: /h or /H Include Hidden files");
puts(" /s or /S Include System files");
puts(" /v or /V Type Volume Label");
puts(" /d or /D Include Subdirectories");
puts(" /r or /R Include Readonly files");
puts(" /a or /A Include files whith archive bit set");
printf("%cp <Press any key to continue> %cq", 27, 27);
getch();
printf("%cEFor ex from desktop in TTP command line: Type...\n\n", 27);
puts("*.*\n");
puts("makes a directory of current dir to file dir2file.txt whithout subdirs.");
printf("From your shell you type...\n\n");
puts("dir2file *.*\n");
puts("All other examples is for the TTP command.\n");
puts("h:\\pure\\*.* h:\\pekka\\pure.asc /d\n");
puts("Includes all directories and files in Pure C and write them to PURE.ASC in");
puts("directory PEKKA on drive H:. You can offcoarse skip the Drive and path for");
puts("your textfile and put it in that directory you are right now like...\n");
puts("f:\\games\\*.prg games.txt /D\n");
puts("Write the directory GAMES on F:\\ to games.txt there you are.\n");
puts("C:\\*.* /v\n");
puts("Types the Volume name on that partition or disk you want. You must allways");
printf("%cp <Press any key to continue> %cq", 27, 27);
getch();
printf("%cE", 27);
puts("put *.*, else the name of the disc will be saved in a file called /V.");
puts("You can try for youreself and see what happen. Make some tests and see if");
puts("you may have some use of this little program. Please give me a call or ");
puts("mail if you have something on your mind.\n\n");
puts(" --==> Mvh Per-Erik \"Pekka\" Peterson.!! <==--\n\n");
puts("================================================================================\n");
puts("Netmail : per.erik peterson 2:203/221.10\n");
puts("Email : per-erik_peterson@p10.straight.ct.se\n");
puts("Phone : Pekka +46-31-458807\n");
puts("Snailmail: Per-Erik Peterson");
puts(" P.R");
puts(" 421 02 V.F");
puts(" Sweden\n\n");
printf("%cp <Press any key to Quit> %cq", 27, 27);
getch();
printf("%ce%cE", 27, 27);
}